home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Trading on the Edge
/
Trading On The Edge - CD-ROM Toolkit (Wayzata Technology)(2031)(1994).bin
/
pc
/
mac_file
/
vendor_d
/
neuralwa
/
nw2v50
/
uio_if_i.c
< prev
next >
Wrap
Text File
|
1993-08-23
|
10KB
|
343 lines
/* uio_if_i.c */
/************************************************************************
* Copyright(C) 1987-1992 NeuralWare Inc *
* Penn Center West, IV-227, Pittsburgh, PA 15276 *
* Telephone: (412) 787-8222 FAX: (412) 787-8220 *
* *
* All rights reserved. No part of this program may be reproduced, *
* stored in a retrieval system, or transmitted, in any form or by any *
* means, electronic, mechanical, photocopying, recording or otherwise *
* without the prior written permission of the copyright owner, *
* NeuralWare, Inc. *
* *
* PROPRIETARY NOTICE *
* *
* This document is the property of NeuralWare, Inc. and contains *
* trade-secrets and other proprietary information. The information *
* herein is reserved as proprietary to NeuralWare, and is not to be *
* published, reproduced, copied, disclosed, used, or reverse *
* engineered without the express written consent of a duly authorized *
* representative of NeuralWare. *
************************************************************************
*/
/*****************************************************************/
/* */
/* uioif_i.c - UserIO InterFace platform Independent Code */
/* Author: John C. Fairman August 31, 1990 */
/* Copyright 1990 by Neuralware Inc. */
/* */
/* $Author : $ */
/* $Date : $ */
/* $Source : $ */
/* $Revision : $ */
/* $Log : $ */
/* */
/*****************************************************************/
#define UIO_SERVER 1
#define SERVER_EMULATOR_FILE 2
#define HOME_FOR_TRANSFER_DATA 1
#define SKIP_COMPAT_DATA 1
#if defined(_MSC_VER) || defined(__TURBOC__)
#include <string.h>
#endif
#include "userutl.h"
#include "uio_strc.h"
#include "uio_tran.h"
#include "uio_cmds.pro"
#include "uio_tran.pro"
#include "uio_if_i.pro"
#if defined(_MSC_VER) || defined(__TURBOC__)
EXPORT VOID UIO_server_error(NINT);
#endif
/*******************************************************************/
/* This function upacks the data transfer buffer and calls the */
/* userio cmd. */
/*******************************************************************/
/* FUNCTION */
EXPORT VOID Handle_command()
{
RPC_AREA_T *rpc;
rpc = &Data_transfer_ptr->RPC_area;
switch ((UNINT)rpc->request)
{
/* General Purpose Commands */
case CMD_INIT :
{
RPC_AREA_T *rpc;
INITCMD *initcmd;
TEXT process_name[FNALC];
rpc = &Data_transfer_ptr->RPC_area;
initcmd = &rpc->all_arg_lists.initcmd;
strcpy(process_name, initcmd->filename);
rpc->return_value.buffer_int = UIO_Init(process_name);
}
break;
/**/
case CMD_TERM :
{
RPC_AREA_T *rpc;
INITCMD *initcmd;
rpc = &Data_transfer_ptr->RPC_area;
initcmd = &rpc->all_arg_lists.initcmd;
/* addded NINT cast for MS-C 7.0; 4-28-93 mjs */
rpc->return_value.buffer_int = UIO_Term((NINT)initcmd->process_id);
}
break;
case CMD_ATTENTION :
rpc->return_value.buffer_int = UIO_Attention();
break;
/* Learning Commands */
case CMD_LEARN_START :
rpc->return_value.buffer_int = UIO_Learn_Start();
break;
case CMD_LEARN_INPUT :
{
RPC_AREA_T *rpc;
DATACMD *datacmd;
NINT npes;
rpc = &Data_transfer_ptr->RPC_area;
datacmd = &rpc->all_arg_lists.datacmd;
npes = (NINT)datacmd->npes;
rpc->return_value.buffer_int =
UIO_Learn_Input((NINT)datacmd->layn, (NINT)datacmd->npes,
(SREAL *)(Data_transfer_ptr->data_area.data));
Put_data_into_transfer_buffer(
(BUFFER_CHAR *)(Data_transfer_ptr->data_area.data),
npes, (NINT)DATA_TYPE);
}
break;
case CMD_LEARN_OUTPUT :
{
RPC_AREA_T *rpc;
DATACMD *datacmd;
NINT npes;
rpc = &Data_transfer_ptr->RPC_area;
datacmd = &rpc->all_arg_lists.datacmd;
npes = (NINT)datacmd->npes;
rpc->return_value.buffer_int =
/* addded NINT casts for MS-C 7.0; 4-28-93 mjs */
UIO_Learn_Output((NINT)datacmd->layn, (NINT)datacmd->npes,
(SREAL *)(Data_transfer_ptr->data_area.data));
Put_data_into_transfer_buffer(
(BUFFER_CHAR *)(Data_transfer_ptr->data_area.data),
npes, (NINT)DATA_TYPE);
}
break;
/**/
case CMD_LEARN_RESULT :
{
RPC_AREA_T *rpc;
DATACMD *datacmd;
rpc = &Data_transfer_ptr->RPC_area;
datacmd = &rpc->all_arg_lists.datacmd;
rpc->return_value.buffer_int =
/* addded NINT casts for MS-C 7.0; 4-28-93 mjs */
UIO_Learn_Result((NINT)datacmd->layn, (NINT)datacmd->npes,
(SREAL *)(Data_transfer_ptr->data_area.data));
}
break;
case CMD_LEARN_END :
rpc->return_value.buffer_int = UIO_Learn_End();
break;
/* Recall Commands */
case CMD_RECALL_START :
rpc->return_value.buffer_int = UIO_Recall_Start();
break;
case CMD_READ :
{
RPC_AREA_T *rpc;
DATACMD *datacmd;
NINT npes;
rpc = &Data_transfer_ptr->RPC_area;
datacmd = &rpc->all_arg_lists.datacmd;
npes = (NINT)datacmd->npes;
rpc->return_value.buffer_int =
/* addded NINT casts for MS-C 7.0; 4-28-93 mjs */
UIO_Read((NINT)datacmd->layn, (NINT)datacmd->npes,
(SREAL *)(Data_transfer_ptr->data_area.data));
Put_data_into_transfer_buffer(
(BUFFER_CHAR*)(Data_transfer_ptr->data_area.data),
npes, (NINT)DATA_TYPE);
}
break;
case CMD_WRITE :
{
RPC_AREA_T *rpc;
DATACMD *datacmd;
rpc = &Data_transfer_ptr->RPC_area;
datacmd = &rpc->all_arg_lists.datacmd;
rpc->return_value.buffer_int =
/* addded NINT casts for MS-C 7.0; 4-28-93 mjs */
UIO_Write((NINT)datacmd->layn, (NINT)datacmd->npes,
(SREAL *)(Data_transfer_ptr->data_area.data));
}
break;
/**/
case CMD_WRITE_STEP :
{
RPC_AREA_T *rpc;
DATACMD *datacmd;
rpc = &Data_transfer_ptr->RPC_area;
datacmd = &rpc->all_arg_lists.datacmd;
rpc->return_value.buffer_int =
/* addded NINT casts for MS-C 7.0; 4-28-93 mjs */
UIO_Write_Step((NINT)datacmd->layn, (NINT)datacmd->npes,
(SREAL *)(Data_transfer_ptr->data_area.data));
}
break;
case CMD_RECALL_TEST :
{
RPC_AREA_T *rpc;
DATACMD *datacmd;
NINT npes;
rpc = &Data_transfer_ptr->RPC_area;
datacmd = &rpc->all_arg_lists.datacmd;
npes = (NINT)datacmd->npes;
rpc->return_value.buffer_int =
/* addded NINT casts for MS-C 7.0; 4-28-93 mjs */
UIO_Recall_Test((NINT)datacmd->layn, (NINT)datacmd->npes,
(SREAL *)(Data_transfer_ptr->data_area.data));
Put_data_into_transfer_buffer(
(BUFFER_CHAR *)(Data_transfer_ptr->data_area.data),
npes, (NINT)DATA_TYPE);
}
break;
case CMD_RECALL_END :
rpc->return_value.buffer_int = UIO_Recall_End();
break;
/* Other Commands */
case CMD_INSTRUMENT :
{
RPC_AREA_T *rpc;
INSTRUMENTCMD *instrumentcmd;
rpc = &Data_transfer_ptr->RPC_area;
instrumentcmd = &rpc->all_arg_lists.instrumentcmd;
rpc->return_value.buffer_int =
/* addded NINT casts for MS-C 7.0; 4-28-93 mjs */
UIO_Instrument((NINT)instrumentcmd->instrument_id,
(NINT)instrumentcmd->ndataelems,
(SREAL *)(Data_transfer_ptr->data_area.data));
}
break;
case CMD_OBJFUNC :
{
RPC_AREA_T *rpc;
OBJFUNCCMD *objfunccmd;
rpc = &Data_transfer_ptr->RPC_area;
objfunccmd = &rpc->all_arg_lists.objfunccmd;
rpc->return_value.buffer_int =
UIO_ObjFunc((NINT)objfunccmd->eoeflag,
(SREAL *)(Data_transfer_ptr->data_area.data));
if (objfunccmd->eoeflag)
Put_data_into_transfer_buffer(
(BUFFER_CHAR*)(Data_transfer_ptr->data_area.data),
1, (NINT)DATA_TYPE);
}
break;
case CMD_REWIND :
rpc->return_value.buffer_int = UIO_Rewind();
break;
case CMD_EXPLAIN :
{
RPC_AREA_T *rpc;
DATACMD *datacmd;
rpc = &Data_transfer_ptr->RPC_area;
datacmd = &rpc->all_arg_lists.datacmd;
rpc->return_value.buffer_int =
/* addded NINT casts for MS-C 7.0; 4-28-93 mjs */
UIO_Explain((NINT)datacmd->layn, (NINT)datacmd->npes,
(SREAL *)(Data_transfer_ptr->data_area.data));
}
break;
/* This can't ever happen!
case CMD_WRITE_VECTOR :
UIO_Write_Vector();
break;
*/
default :
UIO_server_error((NINT)UNKNOWN_COMMAND);
}
/**/
rpc->request = REQ_ACKNOWLEDGE;
Data_transfer_ptr->RPC_area.process_from_id = Process_id;
Data_transfer_ptr->RPC_area.process_to_id = HOST_PROCESS_ID;
if (UIO_error_value != 0)
{
rpc->request = (BUFFER_INT)UIO_error_value;
UIO_error_value = 0;
}
}